/**
 * 1、修饰类
 * 当用final修饰类的时，表明该类不能被其他类所继承。需要注意的是：final类中所有的成员方法都会隐式的定义为final方法。
 * <p>
 * 2、修饰方法
 * 使用final方法的原因主要是把方法锁定，以防止继承类对其进行更改或重写。
 * 若父类中final方法的访问权限为private，将导致子类中不能直接继承该方法，因此，此时可以在子类中定义相同方法名的函数，此时不会与重写final的矛盾，而是在子类中重新地定义了新方法。
 * <p>
 * 3、修饰变量
 * 当final修饰一个基本数据类型时，表示该基本数据类型的值一旦在初始化后便不能发生变化；如果final修饰一个引用类型时，则在对其初始化之后便不能再让其指向其他对象了，但该引用所指向的对象的内容是可以发生变化的。
 * 本质上是一回事，因为引用的值是一个地址，final要求值，即地址的值不发生变化。
 * final修饰一个成员变量（属性），必须要显示初始化。这里有两种初始化方式，一种是在变量声明的时候初始化；第二种方法是在声明变量的时候不赋初值，但是要在这个变量所在的类的所有的构造函数中对这个变量赋初值。
 * 当函数的参数类型声明为final时，说明该参数是只读型的。即你可以读取使用该参数，但是无法改变该参数的值。
 *
 * @author guodd
 * @version 1.0 use jdk 1.8
 */
package ch03_oothinking.finaluse;